import numpy as np  
import matplotlib.pyplot as plt  

# 定义体重函数  
def weight(t):  
    return 800 / (1 + 3 * np.exp(-t / 30))  

# 成本和售价  
cost_per_day = 0.45  # 每天费用，单位：美元  
initial_price = 0.65  # 初始肉价，单位：美元每磅  
price_decrease = 0.01  # 每天降价，单位：美元  

# 范围  
days = np.arange(0, 100)  # 考虑100天  

# 计算利润  
profits = []  
for t in days:  
    w_t = weight(t)  # 获取当前体重  
    cost = cost_per_day * t  # 计算总成本  
    price_today = initial_price - price_decrease * t  # 计算当前售价  
    revenue = w_t * price_today  # 计算总收入  
    profit = revenue - cost  # 计算利润  
    profits.append(profit)  

# 找到最大利润及对应的天数  
max_profit_index = np.argmax(profits)  
optimal_day = days[max_profit_index]  
max_profit = profits[max_profit_index]  

# 打印结果  
print(f"最佳出售时间: {optimal_day} 天")  
print(f"最大利润: ${max_profit:.2f}")  

# 绘制图表  
plt.figure(figsize=(10, 6))  
plt.plot(days, profits, label='利润', color='blue')  
plt.axvline(x=optimal_day, color='red', linestyle='--', label='最佳出售时间')  
plt.title('猪体重随时间变化的利润图')  
plt.xlabel('时间（天）')  
plt.ylabel('利润（美元）')  
plt.legend()  
plt.grid()  
plt.show()  
